package cn.doitedu.vueapi.dao.tg;


import cn.doitedu.vueapi.utils.TypeCastUtil;
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.jdbc.SQL;
import cn.doitedu.vueapi.pojo.tg.AdUser;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.List;


@Component
public interface AdUserMapper{

	@SelectProvider(type = SqlProvider.class, method = "selectByAdUser")
	@ResultMap("BaseResultMap")
	List<AdUser> selectByAdUser(AdUser adUser);

	@InsertProvider(type = SqlProvider.class,method = "insertAdUser")
	int insertAdUser(AdUser adUser);

	@UpdateProvider(type = SqlProvider.class,method = "updateAdUser")
	int updateAdUser(AdUser adUser);

	@DeleteProvider(type = SqlProvider.class,method = "deleteAdUser")
	int deleteAdUser(AdUser adUser);



	 class SqlProvider{
	
		public String selectByAdUser(AdUser adUser){
			SQL sql= new SQL().SELECT("*").FROM("`ad_user`");
			if(adUser.getId()!=null) sql.AND().WHERE("`id`="+adUser.getId());
			if(adUser.getName()!=null) sql.AND().WHERE("`name`='"+adUser.getName()+"'");
			if(adUser.getNickName()!=null) sql.AND().WHERE("`nick_name`='"+adUser.getNickName()+"'");
			if(adUser.getPassword()!=null) sql.AND().WHERE("`password`='"+adUser.getPassword()+"'");
			if(adUser.getPhone()!=null) sql.AND().WHERE("`phone`='"+adUser.getPhone()+"'");
			if(adUser.getWx()!=null) sql.AND().WHERE("`wx`='"+adUser.getWx()+"'");
			if(adUser.getQq()!=null) sql.AND().WHERE("`qq`='"+adUser.getQq()+"'");
			if(adUser.getGender()!=null) sql.AND().WHERE("`gender`='"+adUser.getGender()+"'");
			if(adUser.getCreateTime()!=null) sql.AND().WHERE("`create_time`="+adUser.getCreateTime());
			if(adUser.getUpdateTime()!=null) sql.AND().WHERE("`update_time`="+adUser.getUpdateTime());
			if(adUser.getStatus()!=null) sql.AND().WHERE("`status`='"+adUser.getStatus()+"'");
	
			return sql.toString();
		}
		public String insertAdUser(AdUser adUser){
			SQL sql= new SQL().INSERT_INTO("`ad_user`");
			if(adUser.getId()!=null) sql.VALUES("`id`",String.valueOf(adUser.getId()));
			if(adUser.getName()!=null) sql.VALUES("`name`","'"+adUser.getName()+"'");
			if(adUser.getNickName()!=null) sql.VALUES("`nick_name`","'"+adUser.getNickName()+"'");
			if(adUser.getPassword()!=null) sql.VALUES("`password`","'"+adUser.getPassword()+"'");
			if(adUser.getPhone()!=null) sql.VALUES("`phone`","'"+adUser.getPhone()+"'");
			if(adUser.getWx()!=null) sql.VALUES("`wx`","'"+adUser.getWx()+"'");
			if(adUser.getQq()!=null) sql.VALUES("`qq`","'"+adUser.getQq()+"'");
			if(adUser.getGender()!=null) sql.VALUES("`gender`","'"+adUser.getGender()+"'");
			if(adUser.getCreateTime()!=null) sql.VALUES("`create_time`", "'"+TypeCastUtil.date2SqlDatetime(adUser.getCreateTime())+"'");
			if(adUser.getUpdateTime()!=null) sql.VALUES("`update_time`","'"+TypeCastUtil.date2SqlDatetime((adUser.getUpdateTime()))+"'");
			if(adUser.getStatus()!=null) sql.VALUES("`status`","'"+adUser.getStatus()+"'");
			return sql.toString();	
		}
		public String updateAdUser(AdUser adUser){
			SQL sql= new SQL().UPDATE("`ad_user`");
			if(adUser.getId()!=null) sql.SET("`id`=" + adUser.getId());
			if(adUser.getName()!=null) sql.SET("`name`='" + adUser.getName()+"'");
			if(adUser.getNickName()!=null) sql.SET("`nick_name`='" + adUser.getNickName()+"'");
			if(adUser.getPassword()!=null) sql.SET("`password`='" + adUser.getPassword()+"'");
			if(adUser.getPhone()!=null) sql.SET("`phone`='" + adUser.getPhone()+"'");
			if(adUser.getWx()!=null) sql.SET("`wx`='" + adUser.getWx()+"'");
			if(adUser.getQq()!=null) sql.SET("`qq`='" + adUser.getQq()+"'");
			if(adUser.getGender()!=null) sql.SET("`gender`='" + adUser.getGender()+"'");
			if(adUser.getCreateTime()!=null) sql.SET("`create_time`=" + adUser.getCreateTime());
			if(adUser.getUpdateTime()!=null) sql.SET("`update_time`=" + adUser.getUpdateTime());
			if(adUser.getStatus()!=null) sql.SET("`status`='" + adUser.getStatus()+"'");
			sql.WHERE("`id`="+adUser.getId());
			return sql.toString();	
		}
		public String deleteAdUser(AdUser adUser){
			SQL sql= new SQL().DELETE_FROM("`ad_user`");
			if(adUser.getId()!=null) sql.AND().WHERE("`id`=" + adUser.getId());
			if(adUser.getName()!=null) sql.AND().WHERE("`name`='" + adUser.getName()+"'");
			if(adUser.getNickName()!=null) sql.AND().WHERE("`nick_name`='" + adUser.getNickName()+"'");
			if(adUser.getPassword()!=null) sql.AND().WHERE("`password`='" + adUser.getPassword()+"'");
			if(adUser.getPhone()!=null) sql.AND().WHERE("`phone`='" + adUser.getPhone()+"'");
			if(adUser.getWx()!=null) sql.AND().WHERE("`wx`='" + adUser.getWx()+"'");
			if(adUser.getQq()!=null) sql.AND().WHERE("`qq`='" + adUser.getQq()+"'");
			if(adUser.getGender()!=null) sql.AND().WHERE("`gender`='" + adUser.getGender()+"'");
			if(adUser.getCreateTime()!=null) sql.AND().WHERE("`create_time`=" + adUser.getCreateTime());
			if(adUser.getUpdateTime()!=null) sql.AND().WHERE("`update_time`=" + adUser.getUpdateTime());
			if(adUser.getStatus()!=null) sql.AND().WHERE("`status`='" + adUser.getStatus()+"'");
			return sql.toString();	
		}
	}
	
}